<?php
/**
 * @description Clase JSON para el contenido de filas y columnas del 
 * 				modulo semana
 * @author Ricardo Santillan
 *
 */
class TablaSemana{
	/** @var Arreglo de objetos del tipo Encabezado */
	var $encabezados=array();
	/** @var Arreglo de objetos del tipo Celda */
	var $celdas=array();
	/** @var Numero total de encabezados */
	var $numEncabazados;
    /** @var Rango de fechas que se muestra en el encabezado */
    var $fechaEncabezado = '';
	/** @var Numero de filas */
	var $numFilas;
	/**
     * @var int Registro correcto del aula o equipo
     * 0 - Registro incorrecto
     * 1 - Registro correcto
     * 
     */
	var $registro;

	/**
	 * Crea los objetos del tipo Encabezado y Celda 
	 * @param $pEncabezados Numero de encabezados
	 * @param $pFilas Numero de filas de las celdas
	 */
	function TablaSemana($pEncabezados=6,$pFilas=13){
		$this->numEncabazados=$pEncabezados;
		$this->numFilas=$pFilas;
		
		//Creamos los objetos de la tabla
		for($cCols=0;$cCols<$pEncabezados;$cCols++){
			$this->encabezados[]=new Encabezado($cCols);
			for($cFila=0;$cFila<$pFilas;$cFila++)
				$this->celdas[$cFila][$cCols]=new Celda($cFila,$cCols);
		}
	}
	
	static function &getTablaSemana($pEncabezados=6,$pFilas=13){
		static $instancia;
		if(!is_object($instancia)) $instancia = new TablaSemana($pEncabezados,$pFilas);
		return $instancia;
	}
}

class Encabezado{
	var $id="";
	var $contenido="";
	var $numero;
	var $clase;
    var $titulo;
    
	function Encabezado($pNumero){
		$this->numero=$pNumero;
		$this->id="col-".$pNumero;
	}
	
	function setContenido($pContenido){
		$this->contenido = $pContenido;
	}
	
	function setId($pId){
		$this->id=$pId;
	}

    function setClase($pClase){
        $this->clase = $pClase;
    }

    function setTitulo($pTitulo){
        $this->titulo = $pTitulo;
    }
}

class Celda{
	var $id="";
	var $contenido="";
	var $fila;
	var $columna;
    var $clase;
    var $titulo;
	
	function Celda($pFila,$pColumna){
		$this->fila=$pFila;
		$this->columna=$pColumna;
		$this->id="row-".$pFila."-".$pColumna;
	}
	
	function setContenido($pContenido){
		$this->contenido = $pContenido;
	}
	
	function setId($pId){
		$this->id=$pId;
	}

    function setClase($pClase){
        $this->clase = $pClase;
    }

    function setTitulo($pTitulo){
        $this->titulo = $pTitulo;
    }
}
?>